/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package gui;

import app.AppMainFrame;
import java.util.ArrayList;
import java.util.Vector;
import javax.swing.JFrame;
import javax.swing.SwingWorker;
import libs.Utils;
import models.NeuralNetwork;
import types.TMLPNode;
import types.TNeuralNetworkStructure;

/**
 *
 * @author musa-atas
 */
public class FrameANN extends javax.swing.JFrame {

    public NeuralNetwork NNX;
    private Vector LAYER_WEIGHTS = null;
    private Vector LAYER_BIAS = null;
    public Vector RANDOM_LAYER_WEIGHTS = null;
    public Vector RANDOM_LAYER_BIAS = null;
    private TNeuralNetworkStructure nns = new TNeuralNetworkStructure();
    private ArrayList<TMLPNode> salientNodes = null;
    private AppMainFrame frm;

    /**
     * Creates new form FrameANN
     */
    public FrameANN() {
        initComponents();
    }

    public FrameANN(JFrame frmx) {
        initComponents();
        this.frm = (AppMainFrame) frmx;
        jLabel_MSID_inputs.setText(frm.nFeatures + "");
        jTextField_outputSize.setText(frm.nClasses+"");
        jCheckBox_useTesting.setSelected(frm.chk_kFoldDS.isSelected());
        doAdjustHiddenNodes();
    }
    
    public void setFrame(JFrame frmx){
        this.frm = (AppMainFrame) frmx;
        jLabel_MSID_inputs.setText(frm.nFeatures + "");
        jTextField_outputSize.setText(frm.nClasses+"");
        jCheckBox_useTesting.setSelected(frm.chk_kFoldDS.isSelected());
        doAdjustHiddenNodes();
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jPanel2 = new javax.swing.JPanel();
        jLabel61 = new javax.swing.JLabel();
        jLabel_MSID_inputs = new javax.swing.JLabel();
        jLabel121 = new javax.swing.JLabel();
        text_hidden1 = new javax.swing.JTextField();
        jCheckBox_ruleOfThumb = new javax.swing.JCheckBox();
        jLabel221 = new javax.swing.JLabel();
        text_hidden2 = new javax.swing.JTextField();
        jCheckBox_DEBUG = new javax.swing.JCheckBox();
        jLabel321 = new javax.swing.JLabel();
        text_iteration = new javax.swing.JTextField();
        jCheckBox_saveActiveNodes = new javax.swing.JCheckBox();
        jCheckBox_autoIterate = new javax.swing.JCheckBox();
        jLabel25 = new javax.swing.JLabel();
        jTextField_minErrDeviationRatio = new javax.swing.JTextField();
        jLabel421 = new javax.swing.JLabel();
        text_learningRate = new javax.swing.JTextField();
        jCheckBox_autoLearned = new javax.swing.JCheckBox();
        jLabel51 = new javax.swing.JLabel();
        text_momentum = new javax.swing.JTextField();
        jLabel24 = new javax.swing.JLabel();
        jTextField_threadSleep = new javax.swing.JTextField();
        jLabel13 = new javax.swing.JLabel();
        jComboBox_evalType = new javax.swing.JComboBox();
        jLabel131 = new javax.swing.JLabel();
        jComboBox_isShuffled = new javax.swing.JComboBox();
        jCheckBox_rankAbsolute = new javax.swing.JCheckBox();
        jComboBox_rankMethod = new javax.swing.JComboBox();
        jLabel7 = new javax.swing.JLabel();
        jComboBox_weightInit = new javax.swing.JComboBox();
        jCheckBox_hiddenBased = new javax.swing.JCheckBox();
        jLabel8 = new javax.swing.JLabel();
        jTextField_MOF_number = new javax.swing.JTextField();
        jCheckBox_isPrediction = new javax.swing.JCheckBox();
        jTextField_treshold = new javax.swing.JTextField();
        jLabel10 = new javax.swing.JLabel();
        jTextField_outputSize = new javax.swing.JTextField();
        jProgressBar1 = new javax.swing.JProgressBar();
        label_yuzde1 = new javax.swing.JLabel();
        label_error1 = new javax.swing.JLabel();
        label_elapsed1 = new javax.swing.JLabel();
        jCheckBox_stepwiseTraining = new javax.swing.JCheckBox();
        jButton_nextStep = new javax.swing.JButton();
        jCheckBox_useRandomInitialWeights = new javax.swing.JCheckBox();
        jCheckBox_log = new javax.swing.JCheckBox();
        jButton_ANNtrain = new javax.swing.JButton();
        jButton_ANNtest = new javax.swing.JButton();
        jScrollPane1 = new javax.swing.JScrollPane();
        textArea_result = new javax.swing.JTextArea();
        jLabel1 = new javax.swing.JLabel();
        jTabbedPane2 = new javax.swing.JTabbedPane();
        jPanel7 = new javax.swing.JPanel();
        jCheckBox_simTraining = new javax.swing.JCheckBox();
        jCheckBox_saveAveragedConnWeights = new javax.swing.JCheckBox();
        jCheckBox_customConnWeights = new javax.swing.JCheckBox();
        jCheckBox_antiOverfit = new javax.swing.JCheckBox();
        jButton_saveCurrentConnWeights = new javax.swing.JButton();
        jButton_loadAnnModel = new javax.swing.JButton();
        jPanel_simTraining = new panel.PanelANN();
        jPanel8 = new javax.swing.JPanel();
        jScrollPane9 = new javax.swing.JScrollPane();
        jPanel_simNetwork = new panel.PanelNetworkSimulation();
        jPanel32 = new javax.swing.JPanel();
        jCheckBox_simNetwork = new javax.swing.JCheckBox();
        jCheckBox_throwFirst = new javax.swing.JCheckBox();
        jLabel49 = new javax.swing.JLabel();
        jLabel50 = new javax.swing.JLabel();
        jCheckBox_isRankedFeatures = new javax.swing.JCheckBox();
        jTextField_rankedFeatures = new javax.swing.JTextField();
        jTextField_rankedWeights = new javax.swing.JTextField();
        jButton_refValue = new javax.swing.JButton();
        jButton_copyPaste = new javax.swing.JButton();
        jPanel9 = new javax.swing.JPanel();
        jCheckBox_simClassification = new javax.swing.JCheckBox();
        jCheckBox_useWeightNormalization = new javax.swing.JCheckBox();
        jPanel13 = new javax.swing.JPanel();
        jPanel_simClassification = new panel.PanelClassificationSimulation();
        jPanel10 = new javax.swing.JPanel();
        jButton_lsitRefreshMLP = new javax.swing.JButton();
        jScrollPane17 = new javax.swing.JScrollPane();
        jPanel_MLP = new panel.PanelReportList();
        jPanel11 = new javax.swing.JPanel();
        jScrollPane11 = new javax.swing.JScrollPane();
        jTextArea_DEBUG = new javax.swing.JTextArea();
        jPanel12 = new javax.swing.JPanel();
        jScrollPane10 = new javax.swing.JScrollPane();
        jTextArea_TestResults = new javax.swing.JTextArea();
        jCheckBox_activateLargeLog = new javax.swing.JCheckBox();
        jButton_clearLog = new javax.swing.JButton();
        jPanel31 = new javax.swing.JPanel();
        jLabel45 = new javax.swing.JLabel();
        jCheckBox_benchmarkWeightInitialization = new javax.swing.JCheckBox();
        jCheckBox_deselect = new javax.swing.JCheckBox();
        jCheckBox_benchWeight_1 = new javax.swing.JCheckBox();
        jCheckBox_benchWeight_2 = new javax.swing.JCheckBox();
        jCheckBox_benchWeight_3 = new javax.swing.JCheckBox();
        jCheckBox_benchWeight_4 = new javax.swing.JCheckBox();
        jCheckBox_benchWeight_5 = new javax.swing.JCheckBox();
        jCheckBox_jitterWeight = new javax.swing.JCheckBox();
        jCheckBox_benchWeight_6 = new javax.swing.JCheckBox();
        jCheckBox_benchWeight_7 = new javax.swing.JCheckBox();
        jCheckBox_benchWeight_8 = new javax.swing.JCheckBox();
        jCheckBox_benchWeight_9 = new javax.swing.JCheckBox();
        jCheckBox_benchWeight_10 = new javax.swing.JCheckBox();
        jCheckBox_benchWeight_11 = new javax.swing.JCheckBox();
        jCheckBox_benchWeight_12 = new javax.swing.JCheckBox();
        jTextField_fixedWeightValue = new javax.swing.JTextField();
        jCheckBox_benchWeight_13 = new javax.swing.JCheckBox();
        jCheckBox_benchWeight_14 = new javax.swing.JCheckBox();
        jCheckBox_benchWeight_15 = new javax.swing.JCheckBox();
        jLabel46 = new javax.swing.JLabel();
        jTextField_rectangleWidth = new javax.swing.JTextField();
        jCheckBox_benchWeight_16 = new javax.swing.JCheckBox();
        jTextField_benchRandomNumber = new javax.swing.JTextField();
        jCheckBox_benchWeight_17 = new javax.swing.JCheckBox();
        jLabel47 = new javax.swing.JLabel();
        jTextField_weightFrom = new javax.swing.JTextField();
        jTextField_weightTo = new javax.swing.JTextField();
        jLabel48 = new javax.swing.JLabel();
        jCheckBox_onlyPepper = new javax.swing.JCheckBox();
        jCheckBox_useTesting = new javax.swing.JCheckBox();
        text_dimensionReduction = new javax.swing.JTextField();
        jPanel1 = new javax.swing.JPanel();
        jLabel2 = new javax.swing.JLabel();
        jComboBox1 = new javax.swing.JComboBox();

        setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
        setTitle("Artificial Neural Network Module");

        jPanel2.setBorder(javax.swing.BorderFactory.createEtchedBorder());

        jLabel61.setText("input nodes:");

        jLabel_MSID_inputs.setText("0");

        jLabel121.setText("#1.hidden:");

        text_hidden1.setText("19");

        jCheckBox_ruleOfThumb.setSelected(true);
        jCheckBox_ruleOfThumb.setText("auto");

        jLabel221.setText("#2.hidden:");

        text_hidden2.setText("0");

        jCheckBox_DEBUG.setText("DEBUG");

        jLabel321.setText("#iterations:");

        text_iteration.setText("100");

        jCheckBox_saveActiveNodes.setText("save");

        jCheckBox_autoIterate.setSelected(true);
        jCheckBox_autoIterate.setText("auto");

        jLabel25.setText("min err ratio:");

        jTextField_minErrDeviationRatio.setText("0.0001");

        jLabel421.setText("learning rate:");

        text_learningRate.setText("0.1");

        jCheckBox_autoLearned.setSelected(true);
        jCheckBox_autoLearned.setText("auto");

        jLabel51.setText("momentum:");

        text_momentum.setText("0.1");

        jLabel24.setText("sleep:");

        jTextField_threadSleep.setText("0");

        jLabel13.setText("evaluation:");

        jComboBox_evalType.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Majority Voting", "Confidence Level" }));

        jLabel131.setText("is shuffled:");

        jComboBox_isShuffled.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "shuffle", "original order" }));
        jComboBox_isShuffled.setSelectedIndex(1);

        jCheckBox_rankAbsolute.setSelected(true);
        jCheckBox_rankAbsolute.setText("abs rank");

        jComboBox_rankMethod.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "input-hidden", "input-hidden-output", " " }));
        jComboBox_rankMethod.setSelectedIndex(1);

        jLabel7.setText("Weight:");

        jComboBox_weightInit.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "V Fixed Fair -0.5;+0.5;-0.5", "^ Fixed Fair +0.5;-0.5;+0.5", "V && Alternate -0.5;+0.5;-0.5", "/ Fixed Fair -0.5;+0.5", "\\\\ Fixed Fair +0.5;-0.5", "Gaussian", "Nguyen-Widrow", "Sigmoidal-logistic", "Fixed UnFair -0.5;+0.5", "Fixed UnFair +0.5;-0.5", "Sigmoidal-tanh", "All High Value", "All zero", "Alternate", "Rectangular", "Random", "Symmetric Random" }));

        jCheckBox_hiddenBased.setSelected(true);
        jCheckBox_hiddenBased.setText("fair input nodes");

        jLabel8.setText("#tests:");

        jTextField_MOF_number.setText("1");

        jCheckBox_isPrediction.setText("prediction");

        jTextField_treshold.setText("0.56");

        jLabel10.setText("#output:");

        jTextField_outputSize.setText("1");

        jProgressBar1.setStringPainted(true);

        label_yuzde1.setText("0");

        label_error1.setText("0");

        label_elapsed1.setText("Time Elapsed:");

        jCheckBox_stepwiseTraining.setText("stepwise Training");
        jCheckBox_stepwiseTraining.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                jCheckBox_stepwiseTrainingStateChanged(evt);
            }
        });

        jButton_nextStep.setText("next");
        jButton_nextStep.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton_nextStepActionPerformed(evt);
            }
        });

        jCheckBox_useRandomInitialWeights.setSelected(true);
        jCheckBox_useRandomInitialWeights.setText("use previous random weights");

        jCheckBox_log.setText("use log");

        jButton_ANNtrain.setText("Train");
        jButton_ANNtrain.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton_ANNtrainActionPerformed(evt);
            }
        });

        jButton_ANNtest.setText("Test");
        jButton_ANNtest.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton_ANNtestActionPerformed(evt);
            }
        });

        textArea_result.setColumns(20);
        textArea_result.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
        textArea_result.setRows(5);
        jScrollPane1.setViewportView(textArea_result);

        jLabel1.setText("[ desired : predicted ]");

        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jCheckBox_useRandomInitialWeights, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(label_elapsed1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(label_yuzde1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jProgressBar1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
                        .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanel2Layout.createSequentialGroup()
                                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(jLabel13)
                                    .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                                        .addComponent(jLabel25, javax.swing.GroupLayout.Alignment.LEADING)
                                        .addComponent(jLabel421))
                                    .addComponent(jLabel51, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                    .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                                        .addComponent(jLabel221, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                        .addComponent(jLabel321))
                                    .addComponent(jLabel121, javax.swing.GroupLayout.PREFERRED_SIZE, 62, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(jLabel61, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED))
                            .addGroup(jPanel2Layout.createSequentialGroup()
                                .addComponent(jLabel7)
                                .addGap(33, 33, 33)))
                        .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanel2Layout.createSequentialGroup()
                                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addGroup(jPanel2Layout.createSequentialGroup()
                                        .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                            .addComponent(text_hidden1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, 61, javax.swing.GroupLayout.PREFERRED_SIZE)
                                            .addComponent(text_hidden2, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, 61, javax.swing.GroupLayout.PREFERRED_SIZE)
                                            .addComponent(text_iteration, javax.swing.GroupLayout.PREFERRED_SIZE, 61, javax.swing.GroupLayout.PREFERRED_SIZE))
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED))
                                    .addGroup(jPanel2Layout.createSequentialGroup()
                                        .addComponent(jLabel_MSID_inputs, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                        .addGap(14, 14, 14)))
                                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(jCheckBox_saveActiveNodes)
                                    .addComponent(jCheckBox_ruleOfThumb)
                                    .addComponent(jCheckBox_DEBUG)
                                    .addComponent(jCheckBox_autoIterate)))
                            .addComponent(jComboBox_evalType, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addGroup(jPanel2Layout.createSequentialGroup()
                                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                    .addComponent(text_learningRate, javax.swing.GroupLayout.PREFERRED_SIZE, 65, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(text_momentum, javax.swing.GroupLayout.PREFERRED_SIZE, 65, javax.swing.GroupLayout.PREFERRED_SIZE))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addGroup(jPanel2Layout.createSequentialGroup()
                                        .addComponent(jLabel24)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addComponent(jTextField_threadSleep, javax.swing.GroupLayout.PREFERRED_SIZE, 24, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addComponent(jCheckBox_autoLearned)))
                            .addComponent(jTextField_minErrDeviationRatio, javax.swing.GroupLayout.PREFERRED_SIZE, 126, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jComboBox_isShuffled, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(jComboBox_rankMethod, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(jComboBox_weightInit, 0, 1, Short.MAX_VALUE)))
                    .addComponent(label_error1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addGroup(jPanel2Layout.createSequentialGroup()
                        .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanel2Layout.createSequentialGroup()
                                .addComponent(jCheckBox_stepwiseTraining)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jButton_nextStep, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                            .addComponent(jScrollPane1)
                            .addGroup(jPanel2Layout.createSequentialGroup()
                                .addComponent(jButton_ANNtrain, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jButton_ANNtest, javax.swing.GroupLayout.PREFERRED_SIZE, 100, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(jPanel2Layout.createSequentialGroup()
                                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 114, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addGroup(jPanel2Layout.createSequentialGroup()
                                        .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                            .addGroup(jPanel2Layout.createSequentialGroup()
                                                .addComponent(jCheckBox_hiddenBased)
                                                .addGap(6, 6, 6)
                                                .addComponent(jLabel8))
                                            .addGroup(jPanel2Layout.createSequentialGroup()
                                                .addComponent(jCheckBox_isPrediction)
                                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                                .addComponent(jTextField_treshold, javax.swing.GroupLayout.PREFERRED_SIZE, 36, javax.swing.GroupLayout.PREFERRED_SIZE)
                                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                                .addComponent(jLabel10)))
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                            .addComponent(jTextField_outputSize, javax.swing.GroupLayout.PREFERRED_SIZE, 55, javax.swing.GroupLayout.PREFERRED_SIZE)
                                            .addComponent(jTextField_MOF_number, javax.swing.GroupLayout.PREFERRED_SIZE, 55, javax.swing.GroupLayout.PREFERRED_SIZE)))
                                    .addComponent(jCheckBox_log)
                                    .addComponent(jCheckBox_rankAbsolute)
                                    .addComponent(jLabel131))
                                .addGap(0, 0, Short.MAX_VALUE)))
                        .addContainerGap())))
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addContainerGap(11, Short.MAX_VALUE)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel61)
                    .addComponent(jLabel_MSID_inputs)
                    .addComponent(jCheckBox_saveActiveNodes))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel121)
                    .addComponent(text_hidden1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jCheckBox_ruleOfThumb))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel221)
                    .addComponent(text_hidden2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jCheckBox_DEBUG))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel321)
                    .addComponent(text_iteration, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jCheckBox_autoIterate))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel25)
                    .addComponent(jTextField_minErrDeviationRatio, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel421)
                    .addComponent(text_learningRate, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jCheckBox_autoLearned))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(text_momentum, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel51)
                    .addComponent(jLabel24)
                    .addComponent(jTextField_threadSleep, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel13)
                    .addComponent(jComboBox_evalType, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel131)
                    .addComponent(jComboBox_isShuffled, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jCheckBox_rankAbsolute)
                    .addComponent(jComboBox_rankMethod, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel7)
                    .addComponent(jComboBox_weightInit, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jCheckBox_hiddenBased)
                    .addComponent(jTextField_MOF_number, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel8))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jCheckBox_isPrediction)
                    .addComponent(jTextField_treshold, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel10)
                    .addComponent(jTextField_outputSize, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jProgressBar1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(label_yuzde1)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(label_error1)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(label_elapsed1)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jCheckBox_stepwiseTraining)
                    .addComponent(jButton_nextStep))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jCheckBox_useRandomInitialWeights)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jCheckBox_log)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jButton_ANNtrain)
                    .addComponent(jButton_ANNtest))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel1)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 154, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );

        jCheckBox_simTraining.setSelected(true);
        jCheckBox_simTraining.setText("activate");

        jCheckBox_saveAveragedConnWeights.setText("save averaged ConnWeights");

        jCheckBox_customConnWeights.setText("use CCW");

        jCheckBox_antiOverfit.setText("use Anti-OverFitting");

        jButton_saveCurrentConnWeights.setText("save current CW");
        jButton_saveCurrentConnWeights.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton_saveCurrentConnWeightsActionPerformed(evt);
            }
        });

        jButton_loadAnnModel.setText("Load ANN Model");
        jButton_loadAnnModel.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton_loadAnnModelActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel7Layout = new javax.swing.GroupLayout(jPanel7);
        jPanel7.setLayout(jPanel7Layout);
        jPanel7Layout.setHorizontalGroup(
            jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel7Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jPanel_simTraining, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addGroup(jPanel7Layout.createSequentialGroup()
                        .addComponent(jCheckBox_simTraining)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jCheckBox_saveAveragedConnWeights)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jCheckBox_customConnWeights)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jCheckBox_antiOverfit)
                        .addGap(77, 77, 77)
                        .addComponent(jButton_saveCurrentConnWeights)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jButton_loadAnnModel)
                        .addGap(0, 109, Short.MAX_VALUE)))
                .addContainerGap())
        );
        jPanel7Layout.setVerticalGroup(
            jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel7Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jCheckBox_simTraining)
                    .addComponent(jCheckBox_saveAveragedConnWeights)
                    .addComponent(jCheckBox_customConnWeights)
                    .addComponent(jCheckBox_antiOverfit)
                    .addComponent(jButton_saveCurrentConnWeights)
                    .addComponent(jButton_loadAnnModel))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanel_simTraining, javax.swing.GroupLayout.DEFAULT_SIZE, 723, Short.MAX_VALUE)
                .addContainerGap())
        );

        jTabbedPane2.addTab("Training Simulation", jPanel7);

        jScrollPane9.setVerticalScrollBarPolicy(javax.swing.ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);

        jPanel_simNetwork.setPreferredSize(new java.awt.Dimension(215, 10000));
        jScrollPane9.setViewportView(jPanel_simNetwork);

        jPanel32.setBorder(javax.swing.BorderFactory.createEtchedBorder());

        jCheckBox_simNetwork.setSelected(true);
        jCheckBox_simNetwork.setText("activate");

        jCheckBox_throwFirst.setText("throw first");

        jLabel49.setText("ranked F:");

        jLabel50.setText("weights:");

        jCheckBox_isRankedFeatures.setSelected(true);
        jCheckBox_isRankedFeatures.setText("ranking features");
        jCheckBox_isRankedFeatures.addChangeListener(new javax.swing.event.ChangeListener() {
            public void stateChanged(javax.swing.event.ChangeEvent evt) {
                jCheckBox_isRankedFeaturesStateChanged(evt);
            }
        });

        jButton_refValue.setText("ref. val.");
        jButton_refValue.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton_refValueActionPerformed(evt);
            }
        });

        jButton_copyPaste.setText("copy & paste");
        jButton_copyPaste.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton_copyPasteActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel32Layout = new javax.swing.GroupLayout(jPanel32);
        jPanel32.setLayout(jPanel32Layout);
        jPanel32Layout.setHorizontalGroup(
            jPanel32Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel32Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel32Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel32Layout.createSequentialGroup()
                        .addGroup(jPanel32Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(jPanel32Layout.createSequentialGroup()
                                .addComponent(jCheckBox_throwFirst)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jLabel50)
                                .addGap(18, 18, 18)
                                .addComponent(jTextField_rankedWeights, javax.swing.GroupLayout.DEFAULT_SIZE, 605, Short.MAX_VALUE))
                            .addGroup(jPanel32Layout.createSequentialGroup()
                                .addComponent(jCheckBox_simNetwork)
                                .addGap(18, 18, 18)
                                .addComponent(jLabel49)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addComponent(jTextField_rankedFeatures)))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel32Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addComponent(jButton_refValue, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(jButton_copyPaste, javax.swing.GroupLayout.PREFERRED_SIZE, 1, Short.MAX_VALUE)))
                    .addGroup(jPanel32Layout.createSequentialGroup()
                        .addComponent(jCheckBox_isRankedFeatures)
                        .addGap(0, 0, Short.MAX_VALUE)))
                .addContainerGap())
        );
        jPanel32Layout.setVerticalGroup(
            jPanel32Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel32Layout.createSequentialGroup()
                .addGroup(jPanel32Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jCheckBox_simNetwork)
                    .addComponent(jLabel49)
                    .addComponent(jTextField_rankedFeatures, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jButton_refValue))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel32Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jCheckBox_throwFirst)
                    .addComponent(jLabel50)
                    .addComponent(jTextField_rankedWeights, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jButton_copyPaste))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 4, Short.MAX_VALUE)
                .addComponent(jCheckBox_isRankedFeatures))
        );

        javax.swing.GroupLayout jPanel8Layout = new javax.swing.GroupLayout(jPanel8);
        jPanel8.setLayout(jPanel8Layout);
        jPanel8Layout.setHorizontalGroup(
            jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel8Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jScrollPane9)
                    .addComponent(jPanel32, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap())
        );
        jPanel8Layout.setVerticalGroup(
            jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel8Layout.createSequentialGroup()
                .addComponent(jPanel32, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane9, javax.swing.GroupLayout.DEFAULT_SIZE, 674, Short.MAX_VALUE)
                .addContainerGap())
        );

        jTabbedPane2.addTab("Network Simulation", jPanel8);

        jCheckBox_simClassification.setText("activate");

        jCheckBox_useWeightNormalization.setText("use weight normalization");
        jCheckBox_useWeightNormalization.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jCheckBox_useWeightNormalizationActionPerformed(evt);
            }
        });

        jPanel13.setBorder(javax.swing.BorderFactory.createEtchedBorder());

        jPanel_simClassification.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        javax.swing.GroupLayout jPanel_simClassificationLayout = new javax.swing.GroupLayout(jPanel_simClassification);
        jPanel_simClassification.setLayout(jPanel_simClassificationLayout);
        jPanel_simClassificationLayout.setHorizontalGroup(
            jPanel_simClassificationLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 0, Short.MAX_VALUE)
        );
        jPanel_simClassificationLayout.setVerticalGroup(
            jPanel_simClassificationLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 732, Short.MAX_VALUE)
        );

        javax.swing.GroupLayout jPanel13Layout = new javax.swing.GroupLayout(jPanel13);
        jPanel13.setLayout(jPanel13Layout);
        jPanel13Layout.setHorizontalGroup(
            jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jPanel_simClassification, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );
        jPanel13Layout.setVerticalGroup(
            jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jPanel_simClassification, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );

        javax.swing.GroupLayout jPanel9Layout = new javax.swing.GroupLayout(jPanel9);
        jPanel9.setLayout(jPanel9Layout);
        jPanel9Layout.setHorizontalGroup(
            jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel9Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jPanel13, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addGroup(jPanel9Layout.createSequentialGroup()
                        .addComponent(jCheckBox_simClassification)
                        .addGap(27, 27, 27)
                        .addComponent(jCheckBox_useWeightNormalization, javax.swing.GroupLayout.PREFERRED_SIZE, 199, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(0, 551, Short.MAX_VALUE)))
                .addContainerGap())
        );
        jPanel9Layout.setVerticalGroup(
            jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel9Layout.createSequentialGroup()
                .addGroup(jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jCheckBox_simClassification)
                    .addComponent(jCheckBox_useWeightNormalization))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanel13, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap())
        );

        jTabbedPane2.addTab("Classification Simulation", jPanel9);

        jButton_lsitRefreshMLP.setText("REFRESH");
        jButton_lsitRefreshMLP.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton_lsitRefreshMLPActionPerformed(evt);
            }
        });

        jScrollPane17.setViewportView(jPanel_MLP);

        javax.swing.GroupLayout jPanel10Layout = new javax.swing.GroupLayout(jPanel10);
        jPanel10.setLayout(jPanel10Layout);
        jPanel10Layout.setHorizontalGroup(
            jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel10Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel10Layout.createSequentialGroup()
                        .addComponent(jButton_lsitRefreshMLP)
                        .addGap(0, 765, Short.MAX_VALUE))
                    .addComponent(jScrollPane17, javax.swing.GroupLayout.DEFAULT_SIZE, 842, Short.MAX_VALUE))
                .addContainerGap())
        );
        jPanel10Layout.setVerticalGroup(
            jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel10Layout.createSequentialGroup()
                .addComponent(jButton_lsitRefreshMLP)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane17, javax.swing.GroupLayout.DEFAULT_SIZE, 734, Short.MAX_VALUE)
                .addContainerGap())
        );

        jTabbedPane2.addTab("Log MLP", jPanel10);

        jTextArea_DEBUG.setColumns(20);
        jTextArea_DEBUG.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
        jTextArea_DEBUG.setRows(5);
        jScrollPane11.setViewportView(jTextArea_DEBUG);

        javax.swing.GroupLayout jPanel11Layout = new javax.swing.GroupLayout(jPanel11);
        jPanel11.setLayout(jPanel11Layout);
        jPanel11Layout.setHorizontalGroup(
            jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel11Layout.createSequentialGroup()
                .addComponent(jScrollPane11, javax.swing.GroupLayout.DEFAULT_SIZE, 852, Short.MAX_VALUE)
                .addContainerGap())
        );
        jPanel11Layout.setVerticalGroup(
            jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel11Layout.createSequentialGroup()
                .addComponent(jScrollPane11, javax.swing.GroupLayout.DEFAULT_SIZE, 763, Short.MAX_VALUE)
                .addContainerGap())
        );

        jTabbedPane2.addTab("DEBUG", jPanel11);

        jTextArea_TestResults.setColumns(20);
        jTextArea_TestResults.setFont(new java.awt.Font("Tahoma", 0, 12)); // NOI18N
        jTextArea_TestResults.setRows(5);
        jScrollPane10.setViewportView(jTextArea_TestResults);

        jCheckBox_activateLargeLog.setText("activate");

        jButton_clearLog.setText("clear");
        jButton_clearLog.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton_clearLogActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel12Layout = new javax.swing.GroupLayout(jPanel12);
        jPanel12.setLayout(jPanel12Layout);
        jPanel12Layout.setHorizontalGroup(
            jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel12Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel12Layout.createSequentialGroup()
                        .addComponent(jCheckBox_activateLargeLog)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jButton_clearLog, javax.swing.GroupLayout.PREFERRED_SIZE, 66, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(0, 705, Short.MAX_VALUE))
                    .addComponent(jScrollPane10, javax.swing.GroupLayout.DEFAULT_SIZE, 842, Short.MAX_VALUE))
                .addContainerGap())
        );
        jPanel12Layout.setVerticalGroup(
            jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel12Layout.createSequentialGroup()
                .addGroup(jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jCheckBox_activateLargeLog)
                    .addComponent(jButton_clearLog))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane10, javax.swing.GroupLayout.DEFAULT_SIZE, 734, Short.MAX_VALUE)
                .addContainerGap())
        );

        jTabbedPane2.addTab("Test Results", jPanel12);

        jPanel31.setBorder(javax.swing.BorderFactory.createEtchedBorder());

        jLabel45.setText("Benchmark Settings");

        jCheckBox_benchmarkWeightInitialization.setSelected(true);
        jCheckBox_benchmarkWeightInitialization.setText("according to weight initialization strategies");

        jCheckBox_deselect.setSelected(true);
        jCheckBox_deselect.setText("select All");

        jCheckBox_benchWeight_1.setSelected(true);
        jCheckBox_benchWeight_1.setText("V Fixed Fair -0.5;+0.5;-0.5");

        jCheckBox_benchWeight_2.setSelected(true);
        jCheckBox_benchWeight_2.setText("^ Fixed Fair +0.5;-0.5;+0.5");

        jCheckBox_benchWeight_3.setSelected(true);
        jCheckBox_benchWeight_3.setText("V && Alternate -0.5;+0.5;-0.5");

        jCheckBox_benchWeight_4.setSelected(true);
        jCheckBox_benchWeight_4.setText("/ Fixed Fair -0.5;+0.5");
        jCheckBox_benchWeight_4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jCheckBox_benchWeight_4ActionPerformed(evt);
            }
        });

        jCheckBox_benchWeight_5.setSelected(true);
        jCheckBox_benchWeight_5.setText("\\ Fixed Fair +0.5;-0.5");
        jCheckBox_benchWeight_5.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jCheckBox_benchWeight_5ActionPerformed(evt);
            }
        });

        jCheckBox_jitterWeight.setText("jitter weight");
        jCheckBox_jitterWeight.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jCheckBox_jitterWeightActionPerformed(evt);
            }
        });

        jCheckBox_benchWeight_6.setSelected(true);
        jCheckBox_benchWeight_6.setText("Gaussian");
        jCheckBox_benchWeight_6.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jCheckBox_benchWeight_6ActionPerformed(evt);
            }
        });

        jCheckBox_benchWeight_7.setSelected(true);
        jCheckBox_benchWeight_7.setText("Nguyen-Widrow");
        jCheckBox_benchWeight_7.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jCheckBox_benchWeight_7ActionPerformed(evt);
            }
        });

        jCheckBox_benchWeight_8.setSelected(true);
        jCheckBox_benchWeight_8.setText("Sigmoidal-logistic");
        jCheckBox_benchWeight_8.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jCheckBox_benchWeight_8ActionPerformed(evt);
            }
        });

        jCheckBox_benchWeight_9.setSelected(true);
        jCheckBox_benchWeight_9.setText("Fixed UnFair -0.5;+0.5");
        jCheckBox_benchWeight_9.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jCheckBox_benchWeight_9ActionPerformed(evt);
            }
        });

        jCheckBox_benchWeight_10.setSelected(true);
        jCheckBox_benchWeight_10.setText("Fixed UnFair +0.5;-0.5");
        jCheckBox_benchWeight_10.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jCheckBox_benchWeight_10ActionPerformed(evt);
            }
        });

        jCheckBox_benchWeight_11.setSelected(true);
        jCheckBox_benchWeight_11.setText("Sigmoidal-tanh");
        jCheckBox_benchWeight_11.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jCheckBox_benchWeight_11ActionPerformed(evt);
            }
        });

        jCheckBox_benchWeight_12.setSelected(true);
        jCheckBox_benchWeight_12.setText("All High Value");
        jCheckBox_benchWeight_12.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jCheckBox_benchWeight_12ActionPerformed(evt);
            }
        });

        jTextField_fixedWeightValue.setText("100");

        jCheckBox_benchWeight_13.setSelected(true);
        jCheckBox_benchWeight_13.setText("All zero");
        jCheckBox_benchWeight_13.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jCheckBox_benchWeight_13ActionPerformed(evt);
            }
        });

        jCheckBox_benchWeight_14.setSelected(true);
        jCheckBox_benchWeight_14.setText("Alternate");
        jCheckBox_benchWeight_14.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jCheckBox_benchWeight_14ActionPerformed(evt);
            }
        });

        jCheckBox_benchWeight_15.setSelected(true);
        jCheckBox_benchWeight_15.setText("Rectangular");
        jCheckBox_benchWeight_15.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jCheckBox_benchWeight_15ActionPerformed(evt);
            }
        });

        jLabel46.setText("width:");

        jTextField_rectangleWidth.setText("1");

        jCheckBox_benchWeight_16.setSelected(true);
        jCheckBox_benchWeight_16.setText("Random");
        jCheckBox_benchWeight_16.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jCheckBox_benchWeight_16ActionPerformed(evt);
            }
        });

        jTextField_benchRandomNumber.setText("10");

        jCheckBox_benchWeight_17.setSelected(true);
        jCheckBox_benchWeight_17.setText("Symmetric Random");
        jCheckBox_benchWeight_17.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jCheckBox_benchWeight_17ActionPerformed(evt);
            }
        });

        jLabel47.setText("Weight Initialization Range");

        jTextField_weightFrom.setText("-0.5");

        jTextField_weightTo.setText("0.5");

        jLabel48.setText("to");

        jCheckBox_onlyPepper.setText("Only Pepper");

        jCheckBox_useTesting.setSelected(true);
        jCheckBox_useTesting.setText("Use only testing");

        text_dimensionReduction.setText("50");

        javax.swing.GroupLayout jPanel31Layout = new javax.swing.GroupLayout(jPanel31);
        jPanel31.setLayout(jPanel31Layout);
        jPanel31Layout.setHorizontalGroup(
            jPanel31Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel31Layout.createSequentialGroup()
                .addGroup(jPanel31Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel31Layout.createSequentialGroup()
                        .addGap(19, 19, 19)
                        .addGroup(jPanel31Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jCheckBox_benchmarkWeightInitialization)
                            .addGroup(jPanel31Layout.createSequentialGroup()
                                .addGap(21, 21, 21)
                                .addGroup(jPanel31Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(jCheckBox_deselect)
                                    .addComponent(jCheckBox_benchWeight_2)
                                    .addComponent(jCheckBox_benchWeight_3)
                                    .addComponent(jCheckBox_benchWeight_4)
                                    .addComponent(jCheckBox_benchWeight_5)
                                    .addComponent(jCheckBox_benchWeight_6)
                                    .addComponent(jCheckBox_benchWeight_7)
                                    .addComponent(jCheckBox_benchWeight_8)
                                    .addComponent(jCheckBox_benchWeight_9)
                                    .addComponent(jCheckBox_benchWeight_11)
                                    .addGroup(jPanel31Layout.createSequentialGroup()
                                        .addGroup(jPanel31Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                            .addComponent(jCheckBox_benchWeight_1)
                                            .addComponent(jCheckBox_benchWeight_12)
                                            .addComponent(jCheckBox_benchWeight_13)
                                            .addComponent(jCheckBox_benchWeight_14))
                                        .addGap(36, 36, 36)
                                        .addGroup(jPanel31Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                            .addComponent(jCheckBox_jitterWeight)
                                            .addComponent(jTextField_fixedWeightValue, javax.swing.GroupLayout.PREFERRED_SIZE, 51, javax.swing.GroupLayout.PREFERRED_SIZE)))
                                    .addGroup(jPanel31Layout.createSequentialGroup()
                                        .addGroup(jPanel31Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                            .addGroup(jPanel31Layout.createSequentialGroup()
                                                .addComponent(jCheckBox_benchWeight_15)
                                                .addGap(77, 77, 77)
                                                .addComponent(jLabel46))
                                            .addComponent(jCheckBox_benchWeight_16)
                                            .addComponent(jCheckBox_benchWeight_17)
                                            .addComponent(jLabel47)
                                            .addGroup(jPanel31Layout.createSequentialGroup()
                                                .addComponent(jTextField_weightFrom, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)
                                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                                .addComponent(jLabel48)
                                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                                .addComponent(jTextField_weightTo, javax.swing.GroupLayout.PREFERRED_SIZE, 37, javax.swing.GroupLayout.PREFERRED_SIZE)))
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                        .addGroup(jPanel31Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                            .addComponent(jTextField_benchRandomNumber, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                            .addComponent(jTextField_rectangleWidth, javax.swing.GroupLayout.PREFERRED_SIZE, 23, javax.swing.GroupLayout.PREFERRED_SIZE)))
                                    .addComponent(jCheckBox_benchWeight_10))))
                        .addGap(52, 52, 52)
                        .addGroup(jPanel31Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addComponent(jCheckBox_useTesting, javax.swing.GroupLayout.DEFAULT_SIZE, 118, Short.MAX_VALUE)
                            .addComponent(jCheckBox_onlyPepper, javax.swing.GroupLayout.PREFERRED_SIZE, 87, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(text_dimensionReduction)))
                    .addGroup(jPanel31Layout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(jLabel45)))
                .addContainerGap(372, Short.MAX_VALUE))
        );
        jPanel31Layout.setVerticalGroup(
            jPanel31Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel31Layout.createSequentialGroup()
                .addGap(5, 5, 5)
                .addComponent(jLabel45)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel31Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jCheckBox_benchmarkWeightInitialization)
                    .addComponent(jCheckBox_onlyPepper))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel31Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jCheckBox_deselect)
                    .addComponent(jCheckBox_useTesting))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel31Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel31Layout.createSequentialGroup()
                        .addGroup(jPanel31Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jCheckBox_benchWeight_1)
                            .addComponent(jCheckBox_jitterWeight))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jCheckBox_benchWeight_2)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jCheckBox_benchWeight_3)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jCheckBox_benchWeight_4)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jCheckBox_benchWeight_5)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jCheckBox_benchWeight_6)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jCheckBox_benchWeight_7)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jCheckBox_benchWeight_8)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jCheckBox_benchWeight_9)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jCheckBox_benchWeight_10)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jCheckBox_benchWeight_11)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel31Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jCheckBox_benchWeight_12)
                            .addComponent(jTextField_fixedWeightValue, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jCheckBox_benchWeight_13)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jCheckBox_benchWeight_14)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel31Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jCheckBox_benchWeight_15)
                            .addComponent(jLabel46)
                            .addComponent(jTextField_rectangleWidth, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel31Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jCheckBox_benchWeight_16)
                            .addComponent(jTextField_benchRandomNumber, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jCheckBox_benchWeight_17)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel47)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(jPanel31Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jTextField_weightFrom, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jTextField_weightTo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabel48)))
                    .addComponent(text_dimensionReduction, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(0, 263, Short.MAX_VALUE))
        );

        jTabbedPane2.addTab("Options", jPanel31);

        jPanel1.setBorder(javax.swing.BorderFactory.createEtchedBorder());

        jLabel2.setText("Select ANN Learning Model");

        jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Gradient Descent", "Auto Associative", "Levenberg Marquardt", "Conjugate Gradient" }));

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jComboBox1, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, 140, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(0, 0, Short.MAX_VALUE)))
                .addContainerGap())
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel2)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addGap(6, 6, 6)
                .addComponent(jTabbedPane2)
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(jTabbedPane2))
                .addContainerGap())
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void jCheckBox_stepwiseTrainingStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_jCheckBox_stepwiseTrainingStateChanged
        if (NNX != null) {
            NNX.isStepWiseTraining = (jCheckBox_stepwiseTraining.isSelected()) ? true : false;
        }
    }//GEN-LAST:event_jCheckBox_stepwiseTrainingStateChanged

    private void jButton_nextStepActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton_nextStepActionPerformed
        NNX.isNextClick = true;
    }//GEN-LAST:event_jButton_nextStepActionPerformed

    private void jButton_ANNtrainActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton_ANNtrainActionPerformed
        jButton_ANNtrain.setEnabled(false);
        jButton_ANNtest.setEnabled(false);
        SwingWorker<Void, Void> worker = new SwingWorker<Void, Void>() {
            public Void doInBackground() {
                return doTrainANN();
            }
        };
        worker.execute();
//        doTrain();
    }//GEN-LAST:event_jButton_ANNtrainActionPerformed

    private NeuralNetwork buildNeuralNetwork() {
        NNX = new NeuralNetwork();
        int[] layers;
        int outS = Integer.parseInt(jTextField_outputSize.getText());
        //eger 2.hidden layer ile ilgili bir bilgi girilmemis ise 
        if (text_hidden2.getText().equals("") || Integer.parseInt(text_hidden2.getText()) == 0) {
            layers = new int[3];
            layers[0] = Utils.getInt(jLabel_MSID_inputs.getText());
            layers[1] = Utils.getInt(text_hidden1.getText());// hidden_layer_1_size;
            layers[2] = outS;// output_layer_size;
        } else {
            layers = new int[4];
            layers[0] = Utils.getInt(jLabel_MSID_inputs.getText());
            layers[1] = Utils.getInt(text_hidden1.getText());// hidden_layer_1_size;
            layers[2] = Utils.getInt(text_hidden2.getText());// hidden_layer_2_size;
            layers[3] = outS;// output_layer_size;
        }

        NNX.weightInitializationType = jComboBox_weightInit.getSelectedItem().toString();
        NNX.isWeightInitHiddenBased = jCheckBox_hiddenBased.isSelected();
        NNX.isCustomWeightUse = jCheckBox_customConnWeights.isSelected();
        NNX.isInitialRandomWeightUse = jCheckBox_useRandomInitialWeights.isSelected();
        NNX.isWeightNormalized = jCheckBox_useWeightNormalization.isSelected();
        NNX.rectangleWidth = Integer.parseInt(jTextField_rectangleWidth.getText());
        NNX.fixedWeightValue = Float.parseFloat(jTextField_fixedWeightValue.getText());
        NNX.weightFrom = Float.parseFloat(jTextField_weightFrom.getText());
        NNX.weightTo = Float.parseFloat(jTextField_weightTo.getText());
        NNX.addJitterToWeight = jCheckBox_jitterWeight.isSelected();
        NNX.nRpt = frm.nRpt;
        //Utils.writeToXML(NNX);
        NNX.Initialize(layers, this);
        //Utils.writeToXML(NNX);
        NNX.isOnlyPepper = jCheckBox_onlyPepper.isSelected();
        if (jCheckBox_customConnWeights.isSelected()) {
            NNX.LAYER_WEIGHTS = Utils.cloneWeights(LAYER_WEIGHTS);
            NNX.LAYER_BIAS = Utils.cloneBias(LAYER_BIAS);
        }

        NNX.setIterations(Utils.getInt(text_iteration.getText()));// iterations);
        NNX.setLearningRate(Utils.getFloat(text_learningRate.getText()));// learning_rate);
        NNX.setLearningMomentum(Utils.getFloat(text_momentum.getText()));// learning_momentum);
        NNX.setDimensionReductionSize(text_dimensionReduction.getText());
        NNX.isPrediction = jCheckBox_isPrediction.isSelected();
        NNX.rankingMethod = jComboBox_rankMethod.getSelectedIndex();
        NNX.isRankingMadeAbsolute = jCheckBox_rankAbsolute.isSelected();
        NNX.classLabels = frm.text_rankedFeatureLabels.getText();


        nns = new TNeuralNetworkStructure();
        nns.inputSize = Integer.parseInt(jLabel_MSID_inputs.getText());
        nns.hiddenLayer[0] = Integer.parseInt(text_hidden1.getText());
        nns.hiddenLayer[1] = Integer.parseInt(text_hidden2.getText());
        nns.outputSize = outS;
        nns.currentFile = frm.currentFile;
        String classOrPrediction = "";
        String curFile = frm.currentFile.replace(".txt", "");
        classOrPrediction = (jCheckBox_isPrediction.isSelected() ? "Prediction" : "Classification");
        NNX.setDiscriminantFileName(classOrPrediction + "."
                + jComboBox_rankMethod.getSelectedItem().toString() + "."
                + curFile + "." + nns.hiddenLayer[0] + "."
                + nns.hiddenLayer[1] + "." + text_iteration.getText(),
                jCheckBox_saveActiveNodes.isSelected());
//		NNX.weightTotalMode = jComboBox_Modality.getSelectedItem().toString();
        jPanel_simNetwork.setNNStructure(nns);
        
        //Train Seti elde ediliyor
        String[][] trTrain = Utils.loadDataSet(frm.normalizedTrain, jCheckBox_onlyPepper.isSelected(), jCheckBox_isPrediction.isSelected(), Integer.parseInt(jTextField_outputSize.getText()));
        NNX.setTrainData(trTrain);
        
        // her epoch da input pattern randomly degissin mi (shuffle)?
        if (jComboBox_isShuffled.getSelectedIndex() == 0) {
            NNX.isShuffled = true;
        } else {
            NNX.isShuffled = false;
        }

        //eger cross-validation yapilacaksa validation setini kullan degilse test setini kullan 
        if (jCheckBox_useTesting.isSelected()) {
            if (frm.normalizedTest != null && !frm.normalizedTest.isEmpty()) {
                String[][] trTest = Utils.loadDataSetForTest(frm.normalizedTest, jCheckBox_onlyPepper.isSelected(), jCheckBox_isPrediction.isSelected(), Integer.parseInt(jTextField_outputSize.getText()));
                NNX.setTestData(trTest);
            }
        } else {
            if (frm.normalizedValidation.size() > 0) {
                String[][] trValidation = Utils.loadDataSetForTest(frm.normalizedValidation, jCheckBox_onlyPepper.isSelected(), jCheckBox_isPrediction.isSelected(), Integer.parseInt(jTextField_outputSize.getText()));
                NNX.setTestData(trValidation);
            }
        }

        NNX.setExternalComponents(
                label_error1,
                label_yuzde1,
                jProgressBar1,
                textArea_result,
                getDriver(),
                text_iteration,
                text_learningRate,
                text_momentum);
        NNX.compLargeResult = jTextArea_TestResults;
        NNX.showLargeResult = jCheckBox_activateLargeLog.isSelected();
        NNX.isAutoIterated = jCheckBox_autoIterate.isSelected();
        NNX.minErrorDeviationRatio = Float.parseFloat(jTextField_minErrDeviationRatio.getText());
        NNX.isAutoLearned = jCheckBox_autoLearned.isSelected();
        NNX.simTraining = (jCheckBox_simTraining.isSelected()) ? jPanel_simTraining : null;
        NNX.simNetwork = (jCheckBox_simNetwork.isSelected()) ? jPanel_simNetwork : null;
        NNX.simClassification = (jCheckBox_simClassification.isSelected()) ? jPanel_simClassification : null;
        NNX.isStepWiseTraining = jCheckBox_stepwiseTraining.isSelected();
        NNX.isRankingFeatures = jCheckBox_isRankedFeatures.isSelected();
        NNX.antiOverfitting = jCheckBox_antiOverfit.isSelected();

        NNX.rankedFeatures = jTextField_rankedFeatures;
        NNX.rankedWeights = jTextField_rankedWeights;
        NNX.compRefValue = jButton_refValue;
        NNX.threadSleep = Integer.parseInt(jTextField_threadSleep.getText());
        if (jCheckBox_DEBUG.isSelected()) {
            NNX.DEBUG = true;
            NNX.debugArea = jTextArea_DEBUG;
        }
        return NNX;
    }

    private String getDriver() {
        String str = "E";
        try {
            str = frm.jComboBox_driver.getSelectedItem().toString();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return str;
    }

    public Void doTrainANN() {
        try {
            long l = 0L;
            NNX = buildNeuralNetwork();
            l = NNX.doTrain();
            label_elapsed1.setText("Time Elapsed (msec): " + Long.toString(l));

            jButton_ANNtrain.setEnabled(true);
            jButton_ANNtest.setEnabled(true);
            salientNodes = NNX.nns.activeNodes;
//			if (jCheckBox_useRandomInitialWeights.isSelected()) {
//				saveConnectionWeights("initial");
//			}

        } catch (Exception exception) {
            jButton_ANNtrain.setEnabled(true);
            jButton_ANNtest.setEnabled(true);
            exception.printStackTrace();
        }
        return null;
    }

    private void jButton_ANNtestActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton_ANNtestActionPerformed
        doTestANN();
    }//GEN-LAST:event_jButton_ANNtestActionPerformed
    
    public void doTestANN() {
        if ((jCheckBox_useTesting.isSelected() && frm.normalizedTest.size() == 0)
                || (!jCheckBox_useTesting.isSelected() && frm.normalizedValidation.size() == 0)) {
            Utils.showMessage("Either Test or Validation set is empty, check them");
            return;
        }
        String[][] trTest = null;
        if (jCheckBox_useTesting.isSelected()) {
            trTest = Utils.loadDataSetForTest(frm.normalizedTest, jCheckBox_onlyPepper.isSelected(), jCheckBox_isPrediction.isSelected(), Integer.parseInt(jTextField_outputSize.getText()));
        } else {
            trTest = Utils.loadDataSetForTest(frm.normalizedValidation, jCheckBox_onlyPepper.isSelected(), jCheckBox_isPrediction.isSelected(), Integer.parseInt(jTextField_outputSize.getText()));
        }
        NNX.setEvaluationType(jComboBox_evalType.getSelectedIndex());
        NNX.setTestData(trTest);
        NNX.isPrediction = jCheckBox_isPrediction.isSelected();
        NNX.continousTreshold = Double.parseDouble(jTextField_treshold.getText());
        NNX.isOnlyPepper = jCheckBox_onlyPepper.isSelected();
        NNX.DEBUG = jCheckBox_DEBUG.isSelected();
        NNX.debugArea = jTextArea_DEBUG;
        NNX.doTest();
    }

    private void jButton_saveCurrentConnWeightsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton_saveCurrentConnWeightsActionPerformed
        //saveConnectionWeights("current");
    }//GEN-LAST:event_jButton_saveCurrentConnWeightsActionPerformed

    private void jButton_loadAnnModelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton_loadAnnModelActionPerformed
        //loadAnnModelFromFile();
    }//GEN-LAST:event_jButton_loadAnnModelActionPerformed

    private void jCheckBox_isRankedFeaturesStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_jCheckBox_isRankedFeaturesStateChanged
        if (NNX != null) {
            NNX.isRankingFeatures = (jCheckBox_isRankedFeatures.isSelected()) ? true : false;
        }
    }//GEN-LAST:event_jCheckBox_isRankedFeaturesStateChanged

    private void jButton_refValueActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton_refValueActionPerformed
//        changeVirtualFeaturesToOriginalIndexes();
    }//GEN-LAST:event_jButton_refValueActionPerformed

    private void jButton_copyPasteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton_copyPasteActionPerformed
//        changeVirtualFeaturesToOriginalIndexes();
        String strF = "";
        String strW = "";
        if (jCheckBox_throwFirst.isSelected()) {
            strF = jTextField_rankedFeatures.getText().substring(jTextField_rankedFeatures.getText().indexOf(";") + 1, jTextField_rankedFeatures.getText().lastIndexOf(";")) + ";";
            strW = jTextField_rankedWeights.getText().substring(jTextField_rankedWeights.getText().indexOf(";") + 1, jTextField_rankedWeights.getText().lastIndexOf(";")) + ";";
        } else {
            strF = jTextField_rankedFeatures.getText().substring(0, jTextField_rankedFeatures.getText().lastIndexOf(";"));
            strF = strF.substring(0, strF.lastIndexOf(";") + 1);
            strW = jTextField_rankedWeights.getText().substring(0, jTextField_rankedWeights.getText().lastIndexOf(";"));
            strW = strW.substring(0, strW.lastIndexOf(";") + 1);
        }
        frm.text_rankedFeatures.setText(strF);
        frm.text_rankedFeatureWeights.setText(strW);
//        jButton_loadPepperList.doClick();
//        jButton_normalize.doClick();
//        rankedBandsKeyTyped();
//        Utils.copyToClipBoard(jTextField_rankedFeatures.getText());
        jButton_ANNtrain.doClick();
    }//GEN-LAST:event_jButton_copyPasteActionPerformed

    private void jCheckBox_useWeightNormalizationActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckBox_useWeightNormalizationActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jCheckBox_useWeightNormalizationActionPerformed

    private void jButton_lsitRefreshMLPActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton_lsitRefreshMLPActionPerformed
        jPanel_MLP.refreshList();
    }//GEN-LAST:event_jButton_lsitRefreshMLPActionPerformed

    private void jButton_clearLogActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton_clearLogActionPerformed
        jTextArea_TestResults.setText("");
    }//GEN-LAST:event_jButton_clearLogActionPerformed

    private void jCheckBox_benchWeight_4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckBox_benchWeight_4ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jCheckBox_benchWeight_4ActionPerformed

    private void jCheckBox_benchWeight_5ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckBox_benchWeight_5ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jCheckBox_benchWeight_5ActionPerformed

    private void jCheckBox_jitterWeightActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckBox_jitterWeightActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jCheckBox_jitterWeightActionPerformed

    private void jCheckBox_benchWeight_6ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckBox_benchWeight_6ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jCheckBox_benchWeight_6ActionPerformed

    private void jCheckBox_benchWeight_7ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckBox_benchWeight_7ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jCheckBox_benchWeight_7ActionPerformed

    private void jCheckBox_benchWeight_8ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckBox_benchWeight_8ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jCheckBox_benchWeight_8ActionPerformed

    private void jCheckBox_benchWeight_9ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckBox_benchWeight_9ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jCheckBox_benchWeight_9ActionPerformed

    private void jCheckBox_benchWeight_10ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckBox_benchWeight_10ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jCheckBox_benchWeight_10ActionPerformed

    private void jCheckBox_benchWeight_11ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckBox_benchWeight_11ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jCheckBox_benchWeight_11ActionPerformed

    private void jCheckBox_benchWeight_12ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckBox_benchWeight_12ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jCheckBox_benchWeight_12ActionPerformed

    private void jCheckBox_benchWeight_13ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckBox_benchWeight_13ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jCheckBox_benchWeight_13ActionPerformed

    private void jCheckBox_benchWeight_14ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckBox_benchWeight_14ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jCheckBox_benchWeight_14ActionPerformed

    private void jCheckBox_benchWeight_15ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckBox_benchWeight_15ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jCheckBox_benchWeight_15ActionPerformed

    private void jCheckBox_benchWeight_16ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckBox_benchWeight_16ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jCheckBox_benchWeight_16ActionPerformed

    private void jCheckBox_benchWeight_17ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckBox_benchWeight_17ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jCheckBox_benchWeight_17ActionPerformed

//    protected void rankedBandsKeyTyped() {
//        String str = Utils.getRankedFeatureLabels(frm.text_rankedFeatureLabels.getText(), frm.text_rankedFeatures.getText());
//        text_dimensionReduction.setText(str.split(";").length + "");
//        frm.text_rankedFeatureLabels.setText(str);
//        if (jCheckBox_ruleOfThumb.isSelected()) {
//            //rule of thumb hidden1 buyuklugu hesaplaniyor
//            int hidden1 = (str.split(";").length + 2) / 2 + 1;
//            text_hidden1.setText(hidden1 + "");
//            text_hidden2.setText("0");
//        } else {
//        }
//    }

    private void doAdjustHiddenNodes() {
        String str = frm.text_rankedFeatures.getText();
        int inputNodes = str.split(";").length;
        if (jCheckBox_ruleOfThumb.isSelected()) {
            //reloadPepper();
            text_hidden2.setText("0");
            //rule of thumb hidden1 buyuklugu hesaplaniyor
            int hidden1 = (inputNodes + 2) / 2 + 1;
            text_hidden1.setText(hidden1 + "");
        }
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /*
         * Set the Nimbus look and feel
         */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /*
         * If Nimbus (introduced in Java SE 6) is not available, stay with the
         * default look and feel. For details see
         * http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(FrameANN.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(FrameANN.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(FrameANN.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(FrameANN.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /*
         * Create and display the form
         */
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                new FrameANN().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify//GEN-BEGIN:variables
    public javax.swing.JButton jButton_ANNtest;
    public javax.swing.JButton jButton_ANNtrain;
    private javax.swing.JButton jButton_clearLog;
    private javax.swing.JButton jButton_copyPaste;
    private javax.swing.JButton jButton_loadAnnModel;
    private javax.swing.JButton jButton_lsitRefreshMLP;
    private javax.swing.JButton jButton_nextStep;
    private javax.swing.JButton jButton_refValue;
    private javax.swing.JButton jButton_saveCurrentConnWeights;
    private javax.swing.JCheckBox jCheckBox_DEBUG;
    private javax.swing.JCheckBox jCheckBox_activateLargeLog;
    private javax.swing.JCheckBox jCheckBox_antiOverfit;
    private javax.swing.JCheckBox jCheckBox_autoIterate;
    private javax.swing.JCheckBox jCheckBox_autoLearned;
    private javax.swing.JCheckBox jCheckBox_benchWeight_1;
    private javax.swing.JCheckBox jCheckBox_benchWeight_10;
    private javax.swing.JCheckBox jCheckBox_benchWeight_11;
    private javax.swing.JCheckBox jCheckBox_benchWeight_12;
    private javax.swing.JCheckBox jCheckBox_benchWeight_13;
    private javax.swing.JCheckBox jCheckBox_benchWeight_14;
    private javax.swing.JCheckBox jCheckBox_benchWeight_15;
    private javax.swing.JCheckBox jCheckBox_benchWeight_16;
    private javax.swing.JCheckBox jCheckBox_benchWeight_17;
    private javax.swing.JCheckBox jCheckBox_benchWeight_2;
    private javax.swing.JCheckBox jCheckBox_benchWeight_3;
    private javax.swing.JCheckBox jCheckBox_benchWeight_4;
    private javax.swing.JCheckBox jCheckBox_benchWeight_5;
    private javax.swing.JCheckBox jCheckBox_benchWeight_6;
    private javax.swing.JCheckBox jCheckBox_benchWeight_7;
    private javax.swing.JCheckBox jCheckBox_benchWeight_8;
    private javax.swing.JCheckBox jCheckBox_benchWeight_9;
    private javax.swing.JCheckBox jCheckBox_benchmarkWeightInitialization;
    private javax.swing.JCheckBox jCheckBox_customConnWeights;
    private javax.swing.JCheckBox jCheckBox_deselect;
    private javax.swing.JCheckBox jCheckBox_hiddenBased;
    private javax.swing.JCheckBox jCheckBox_isPrediction;
    private javax.swing.JCheckBox jCheckBox_isRankedFeatures;
    private javax.swing.JCheckBox jCheckBox_jitterWeight;
    private javax.swing.JCheckBox jCheckBox_log;
    private javax.swing.JCheckBox jCheckBox_onlyPepper;
    private javax.swing.JCheckBox jCheckBox_rankAbsolute;
    private javax.swing.JCheckBox jCheckBox_ruleOfThumb;
    private javax.swing.JCheckBox jCheckBox_saveActiveNodes;
    private javax.swing.JCheckBox jCheckBox_saveAveragedConnWeights;
    private javax.swing.JCheckBox jCheckBox_simClassification;
    private javax.swing.JCheckBox jCheckBox_simNetwork;
    private javax.swing.JCheckBox jCheckBox_simTraining;
    private javax.swing.JCheckBox jCheckBox_stepwiseTraining;
    private javax.swing.JCheckBox jCheckBox_throwFirst;
    private javax.swing.JCheckBox jCheckBox_useRandomInitialWeights;
    private javax.swing.JCheckBox jCheckBox_useTesting;
    private javax.swing.JCheckBox jCheckBox_useWeightNormalization;
    private javax.swing.JComboBox jComboBox1;
    private javax.swing.JComboBox jComboBox_evalType;
    private javax.swing.JComboBox jComboBox_isShuffled;
    private javax.swing.JComboBox jComboBox_rankMethod;
    private javax.swing.JComboBox jComboBox_weightInit;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel10;
    private javax.swing.JLabel jLabel121;
    private javax.swing.JLabel jLabel13;
    private javax.swing.JLabel jLabel131;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel221;
    private javax.swing.JLabel jLabel24;
    private javax.swing.JLabel jLabel25;
    private javax.swing.JLabel jLabel321;
    private javax.swing.JLabel jLabel421;
    private javax.swing.JLabel jLabel45;
    private javax.swing.JLabel jLabel46;
    private javax.swing.JLabel jLabel47;
    private javax.swing.JLabel jLabel48;
    private javax.swing.JLabel jLabel49;
    private javax.swing.JLabel jLabel50;
    private javax.swing.JLabel jLabel51;
    private javax.swing.JLabel jLabel61;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JLabel jLabel8;
    private javax.swing.JLabel jLabel_MSID_inputs;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel10;
    private javax.swing.JPanel jPanel11;
    private javax.swing.JPanel jPanel12;
    private javax.swing.JPanel jPanel13;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel31;
    private javax.swing.JPanel jPanel32;
    private javax.swing.JPanel jPanel7;
    private javax.swing.JPanel jPanel8;
    private javax.swing.JPanel jPanel9;
    private panel.PanelReportList jPanel_MLP;
    private panel.PanelClassificationSimulation jPanel_simClassification;
    private panel.PanelNetworkSimulation jPanel_simNetwork;
    private panel.PanelANN jPanel_simTraining;
    private javax.swing.JProgressBar jProgressBar1;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane10;
    private javax.swing.JScrollPane jScrollPane11;
    private javax.swing.JScrollPane jScrollPane17;
    private javax.swing.JScrollPane jScrollPane9;
    private javax.swing.JTabbedPane jTabbedPane2;
    private javax.swing.JTextArea jTextArea_DEBUG;
    private javax.swing.JTextArea jTextArea_TestResults;
    private javax.swing.JTextField jTextField_MOF_number;
    private javax.swing.JTextField jTextField_benchRandomNumber;
    private javax.swing.JTextField jTextField_fixedWeightValue;
    private javax.swing.JTextField jTextField_minErrDeviationRatio;
    private javax.swing.JTextField jTextField_outputSize;
    private javax.swing.JTextField jTextField_rankedFeatures;
    private javax.swing.JTextField jTextField_rankedWeights;
    private javax.swing.JTextField jTextField_rectangleWidth;
    private javax.swing.JTextField jTextField_threadSleep;
    private javax.swing.JTextField jTextField_treshold;
    private javax.swing.JTextField jTextField_weightFrom;
    private javax.swing.JTextField jTextField_weightTo;
    private javax.swing.JLabel label_elapsed1;
    private javax.swing.JLabel label_error1;
    private javax.swing.JLabel label_yuzde1;
    private javax.swing.JTextArea textArea_result;
    private javax.swing.JTextField text_dimensionReduction;
    private javax.swing.JTextField text_hidden1;
    private javax.swing.JTextField text_hidden2;
    private javax.swing.JTextField text_iteration;
    private javax.swing.JTextField text_learningRate;
    private javax.swing.JTextField text_momentum;
    // End of variables declaration//GEN-END:variables
}
